package com.ruoyi.aftersale.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.utils.vo.PoCommon;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 维修工单对象 dms_repair_order
 * 
 * @author liuchuanfa
 * @date 2024-03-13
 */
public class DmsRepairOrder extends PoCommon
{
    private static final long serialVersionUID = 1L;

    /** 经销商ID */
    @Excel(name = "经销商ID")
    private Long dealerId;

    /** 经销商名称 */
    @Excel(name = "经销商名称")
    private String dealerName;

    /** 预约单号 */
    @Excel(name = "预约单号")
    private String reservationNo;

    /** 工单编号 */
    @Excel(name = "工单编号")
    private String roNo;

    /** 状态(1待派工,2已派工,3已领退料,4已质检,5已结算,6已作废) */
    @Excel(name = "状态",readConverterExp = "1=待派工,2=已派工,3=已领退料,4=已质检,5=已结算,6=已作废")
    private Integer status;

    /** 车牌号 */
    private String license;

    /** VIN */
    private String vin;

    /** 品牌名称(1特斯拉,2小鹏,3宝马,4广汽传祺,5其他) */
    @Excel(name = "品牌名称",readConverterExp = "1=特斯拉,2=小鹏,3=宝马,4=广汽传祺,5=其他")
    private Integer brandName;

    /** 工单类型(1一般工单,2保修工单,3首保工单) */
    @Excel(name = "工单类型",readConverterExp = "1=一般工单,2=保修工单,3=首保工单")
    private Integer workOrderType;

    /** 维修工人(1一号工人,2二号工人,3三号工人) */
    @Excel(name = "维修工人",readConverterExp = "1=一号工人,2=二号工人,3=三号工人")
    private Integer maintainWorker;

    /** 进厂时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进厂时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date incomingTime;

    /** 进厂里程 */
    @Excel(name = "进厂里程")
    private Long inMileage;

    /** 进厂油位 */
    @Excel(name = "进厂油位")
    private Integer incomingOilLevel;

    /** 是否洗车(0不是,1是) */
    @Excel(name = "是否洗车",readConverterExp = "0=不是,1=是")
    private Integer isWash;

    /** 是否保养(0不是,1是) */
    @Excel(name = "是否保养",readConverterExp = "0=不是,1=是")
    private Integer isMaintain;

    /** 工时单价 */
    @Excel(name = "工时单价")
    private Double labourPrice;

    /** 总金额（工时总费用+配件总费用+附加项目总费用） */
    @Excel(name = "总金额")
    private Double totalAmount;

    /** 理赔单号 */
    @Excel(name = "理赔单号")
    private String insurantionNo;

    /** 保险公司(1平安保险,2人寿保险,3大地保险,4阳光保险,5其他) */
    @Excel(name = "保险公司",readConverterExp = "1=平安保险,2=人寿保险,3=大地保险,4=阳光保险,5=其他")
    private Integer insurantionName;

    /** 审核人id */
    @Excel(name = "审核人id")
    private Long auditorId;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    private String auditorName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditorTime;

    /** 审核人名称 */
    @Excel(name = "备注")
    private String REMARK;

    public void setDealerId(Long dealerId) 
    {
        this.dealerId = dealerId;
    }

    public Long getDealerId() 
    {
        return dealerId;
    }
    public void setDealerName(String dealerName) 
    {
        this.dealerName = dealerName;
    }

    public String getDealerName() 
    {
        return dealerName;
    }
    public void setReservationNo(String reservationNo) 
    {
        this.reservationNo = reservationNo;
    }

    public String getReservationNo() 
    {
        return reservationNo;
    }
    public void setRoNo(String roNo) 
    {
        this.roNo = roNo;
    }

    public String getRoNo() 
    {
        return roNo;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setLicense(String license) 
    {
        this.license = license;
    }

    public String getLicense() 
    {
        return license;
    }
    public void setVin(String vin) 
    {
        this.vin = vin;
    }

    public String getVin() 
    {
        return vin;
    }
    public void setBrandName(Integer brandName) 
    {
        this.brandName = brandName;
    }

    public Integer getBrandName() 
    {
        return brandName;
    }
    public void setWorkOrderType(Integer workOrderType) 
    {
        this.workOrderType = workOrderType;
    }

    public Integer getWorkOrderType() 
    {
        return workOrderType;
    }
    public void setMaintainWorker(Integer maintainWorker) 
    {
        this.maintainWorker = maintainWorker;
    }

    public Integer getMaintainWorker() 
    {
        return maintainWorker;
    }
    public void setIncomingTime(Date incomingTime) 
    {
        this.incomingTime = incomingTime;
    }

    public Date getIncomingTime() 
    {
        return incomingTime;
    }
    public void setInMileage(Long inMileage) 
    {
        this.inMileage = inMileage;
    }

    public Long getInMileage() 
    {
        return inMileage;
    }
    public void setIncomingOilLevel(Integer incomingOilLevel) 
    {
        this.incomingOilLevel = incomingOilLevel;
    }

    public Integer getIncomingOilLevel() 
    {
        return incomingOilLevel;
    }
    public void setIsWash(Integer isWash) 
    {
        this.isWash = isWash;
    }

    public Integer getIsWash() 
    {
        return isWash;
    }
    public void setIsMaintain(Integer isMaintain) 
    {
        this.isMaintain = isMaintain;
    }

    public Integer getIsMaintain() 
    {
        return isMaintain;
    }
    public void setLabourPrice(Double labourPrice) 
    {
        this.labourPrice = labourPrice;
    }

    public Double getLabourPrice() 
    {
        return labourPrice;
    }
    public void setTotalAmount(Double totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public Double getTotalAmount() 
    {
        return totalAmount;
    }
    public void setInsurantionNo(String insurantionNo) 
    {
        this.insurantionNo = insurantionNo;
    }

    public String getInsurantionNo() 
    {
        return insurantionNo;
    }
    public void setInsurantionName(Integer insurantionName) 
    {
        this.insurantionName = insurantionName;
    }

    public Integer getInsurantionName() 
    {
        return insurantionName;
    }
    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }
    public void setAuditorName(String auditorName) 
    {
        this.auditorName = auditorName;
    }

    public String getAuditorName() 
    {
        return auditorName;
    }
    public void setAuditorTime(Date auditorTime) 
    {
        this.auditorTime = auditorTime;
    }

    public Date getAuditorTime() 
    {
        return auditorTime;
    }
    public String getREMARK() {return REMARK;}

    public void setREMARK(String REMARK) {this.REMARK = REMARK;}

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("dealerId", getDealerId())
            .append("dealerName", getDealerName())
            .append("reservationNo", getReservationNo())
            .append("roNo", getRoNo())
            .append("status", getStatus())
            .append("license", getLicense())
            .append("vin", getVin())
            .append("brandName", getBrandName())
            .append("workOrderType", getWorkOrderType())
            .append("maintainWorker", getMaintainWorker())
            .append("incomingTime", getIncomingTime())
            .append("inMileage", getInMileage())
            .append("incomingOilLevel", getIncomingOilLevel())
            .append("isWash", getIsWash())
            .append("isMaintain", getIsMaintain())
            .append("labourPrice", getLabourPrice())
            .append("totalAmount", getTotalAmount())
            .append("insurantionNo", getInsurantionNo())
            .append("insurantionName", getInsurantionName())
            .append("REMARK", getREMARK())
            .append("auditorId", getAuditorId())
            .append("auditorName", getAuditorName())
            .append("auditorTime", getAuditorTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("createUserName", getCreateUserName())
            .append("updateUserName", getUpdateUserName())
            .append("version", getVersion())
            .append("deleteFlag", getDeleteFlag())
            .toString();
    }
}
